<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta content="yes" name="apple-mobile-web-app-capable" />
        <meta content="yes" name="apple-touch-fullscreen" />
        <meta content="telephone=yes,email=no" name="format-detection" />
        <meta content="maximum-dpr=2" name="flexible" />
        <meta content="modeName=750-12" name="grid" />
        <!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
        <meta name="referrer" content="no-referrer" /> 

<!-- 
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <meta name="format-detection" content="telephone=yes" /> -->
        <title>zhgn</title>
    </head>
    <body>
        <div id="app"></div>
        <!-- built files will be auto injected -->
    </body>
</html>
<script>
  ;(function(win, lib) {

var doc = win.document;

var docEl = doc.documentElement;

var metaEl = doc.querySelector('meta[name="viewport"]');

var flexibleEl = doc.querySelector('meta[name="flexible"]');

var dpr = 0;

var scale = 0;

var tid;

var flexible = lib.flexible || (lib.flexible = {});



if (metaEl) {

    console.warn('将根据已有的meta标签来设置缩放比例');

    var match = metaEl.getAttribute('content').match(/initial\-scale=([\d\.]+)/);

    if (match) {

        scale = parseFloat(match[1]);

        dpr = parseInt(1 / scale);

    }

} else if (flexibleEl) {

    var content = flexibleEl.getAttribute('content');

    if (content) {

        var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);

        var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);

        if (initialDpr) {

            dpr = parseFloat(initialDpr[1]);

            scale = parseFloat((1 / dpr).toFixed(2));    

        }

        if (maximumDpr) {

            dpr = parseFloat(maximumDpr[1]);

            scale = parseFloat((1 / dpr).toFixed(2));    

        }

    }

}



if (!dpr && !scale) {

    var isAndroid = win.navigator.appVersion.match(/android/gi);

    var isIPhone = win.navigator.appVersion.match(/iphone/gi);

    var devicePixelRatio = win.devicePixelRatio;

    if (isIPhone) {

        // iOS下，对于2和3的屏，用2倍的方案，其余的用1倍方案

        if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {                

            dpr = 3;

        } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){

            dpr = 2;

        } else {

            dpr = 1;

        }

    } else {

        // 其他设备下，仍旧使用1倍的方案

        dpr = 1;

    }

    scale = 1 / dpr;

}



docEl.setAttribute('data-dpr', dpr);

if (!metaEl) {

    metaEl = doc.createElement('meta');

    metaEl.setAttribute('name', 'viewport');

    metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');

    if (docEl.firstElementChild) {

        docEl.firstElementChild.appendChild(metaEl);

    } else {

        var wrap = doc.createElement('div');

        wrap.appendChild(metaEl);

        doc.write(wrap.innerHTML);

    }

}



function refreshRem(){

    var width = docEl.getBoundingClientRect().width;

    if (width / dpr > 540) {

        width = 540 * dpr;

    }

    var rem = width / 10;

    docEl.style.fontSize = rem + 'px';

    flexible.rem = win.rem = rem;

}



win.addEventListener('resize', function() {

    clearTimeout(tid);

    tid = setTimeout(refreshRem, 300);

}, false);

win.addEventListener('pageshow', function(e) {

    if (e.persisted) {

        clearTimeout(tid);

        tid = setTimeout(refreshRem, 300);

    }

}, false);



if (doc.readyState === 'complete') {

    doc.body.style.fontSize = 12 * dpr + 'px';

} else {

    doc.addEventListener('DOMContentLoaded', function(e) {

        doc.body.style.fontSize = 12 * dpr + 'px';

    }, false);

}





refreshRem();



flexible.dpr = win.dpr = dpr;

flexible.refreshRem = refreshRem;

flexible.rem2px = function(d) {

    var val = parseFloat(d) * this.rem;

    if (typeof d === 'string' && d.match(/rem$/)) {

        val += 'px';

    }

    return val;

}

flexible.px2rem = function(d) {

    var val = parseFloat(d) / this.rem;

    if (typeof d === 'string' && d.match(/px$/)) {

        val += 'rem';

    }

    return val;

}



})(window, window['lib'] || (window['lib'] = {}));
</script>
